package cn.itcast.protocol;

import io.netty.handler.codec.LengthFieldBasedFrameDecoder;

/**
 * LengthFieldBasedFrameDecoder：是 Netty 框架中的一个解码器，用于处理基于长度字段的帧（消息）。
 * 它能够根据消息头中指定的长度字段来正确地分割网络数据流，确保每个消息都能被完整读取
 */
public class ProtocolFrameDecoder extends LengthFieldBasedFrameDecoder {

    public ProtocolFrameDecoder() {
        this(1024, 12, 4, 0, 0);
    }


    /**
     *
     * @param maxFrameLength 最大帧长度，防止过大的帧导致内存溢出 1024
     * @param lengthFieldOffset 长度字段在消息中的偏移量。 12
     * @param lengthFieldLength 长度字段本身的长度（以字节为单位），例如 4 表示使用两个字节表示长度。
     * @param lengthAdjustment : 长度字段所表示的值与实际内容长度之间的差异。 0
     * @param initialBytesToStrip 解码时从帧中剥离的字节数，默认情况下是剥离掉整个长度字段。 0
     */
    public ProtocolFrameDecoder(int maxFrameLength, int lengthFieldOffset, int lengthFieldLength, int lengthAdjustment, int initialBytesToStrip) {
        super(maxFrameLength, lengthFieldOffset, lengthFieldLength, lengthAdjustment, initialBytesToStrip);
    }
}
